#include "GlobalHeader.h"

int main()
{
    pid_t pid = vfork();
    if(pid < 0)
    {
        perror("vfork");
        return -1;
    }

    int a = 10;
    //子进程
    if(pid == 0)
    {
        a++;
        printf("这是一条子进程，pid：%d  ppid:%d  a=%d\n",getpid(),getppid(),a);
        //sleep(1);
        printf("子进程结束！\n");
        return 2;
    }
    else
    {
        //pid = childID
        printf("这是一条父进程，pid：%d  childID：%d a=%d\n",getpid(),pid,a);
        int result = 0;
        //阻塞型函数，会阻塞进程的函数
        //wait(&result);
        //waitpid(pid,&result,0);
        //进程的返回值藏在高8位
        printf("子进程已经结束，返回值是%d!\n",WEXITSTATUS(result));
    }

    return 0;
}